import chatModel from '../model/chat'

let startSocketIoServer = (io: any) => {
  io.on("connection", (socket: any) => {
    console.log(`Client connected: ${socket.id}`);

    // 监听客户端加入房间的事件
    socket.on('joinRoom', (roomName: any) => {
      // 将客户端加入指定房间
      socket.join(roomName);
      console.log(`${socket.id} joined room: ${roomName}`);
    });

    // 监听客户端发来的消息
    socket.on("chatMessage", (data: any) => {
      console.log("收到一条聊天消息：", data);

      // TODO 添加查询历史记录，或者直接用接口

      // 将消息广播给指定房间内的所有客户端
      io.to(data.roomName).emit('message', data);

      // TODO 添加消息记录功能（消息存储到数据库）
      // 分群聊 和 私聊
      
      /* 私聊 */
      chatModel.pensonalChatModel(data)
    });

    // 监听客户端断开连接事件
    socket.on('disconnect', () => {
      console.log(`Client disconnected: ${socket.id}`);
    });
  });
};

export default {
  startSocketIoServer,
};
